﻿using DoNet.Core.Dtos;
using DoNet.System.Models;
using System.ComponentModel.DataAnnotations;

namespace DoNet.System.Dtos
{
    /// <summary>
    /// 
    /// </summary>
    [Serializable]
    public class AppOutputDto : IOutputDto
    {
        /// <summary>
        /// 设置或获取 
        /// </summary>
        [MaxLength(50)]
        public long Id { get; set; }

        /// <summary>
        /// 设置或获取 
        /// </summary>
        [MaxLength(50)]
        public string AppId { get; set; } = string.Empty;

        /// <summary>
        /// 设置或获取 
        /// </summary>
        [MaxLength(50)]
        public string AppSecret { get; set; } = string.Empty;

        /// <summary>
        /// 设置或获取 
        /// </summary>
        [MaxLength(256)]
        public string EncodingAESKey { get; set; } = string.Empty;

        /// <summary>
        /// 设置或获取 
        /// </summary>
        [MaxLength(256)]
        public string RequestUrl { get; set; } = string.Empty;

        /// <summary>
        /// 设置或获取 
        /// </summary>
        [MaxLength(256)]
        public string Token { get; set; } = string.Empty;

        /// <summary>
        /// 设置或获取 
        /// </summary>
        public bool? IsOpenAEKey { get; set; }

        /// <summary>
        /// 设置或获取 
        /// </summary>
        public bool? DeleteMark { get; set; }

        /// <summary>
        /// 设置或获取 
        /// </summary>
        public bool? EnabledMark { get; set; }

        /// <summary>
        /// 设置或获取 
        /// </summary>
        [MaxLength(500)]
        public string Description { get; set; } = string.Empty;

        /// <summary>
        /// 设置或获取 
        /// </summary>
        public DateTime CreatorTime { get; set; }

        /// <summary>
        /// 设置或获取 
        /// </summary>
        [MaxLength(50)]
        public long CreatorUserId { get; set; }

        /// <summary>
        /// 设置或获取 
        /// </summary>
        [MaxLength(50)]
        public long? CreateOrgId { get; set; }


        /// <summary>
        /// 设置或获取 
        /// </summary>
        public DateTime? LastModifyTime { get; set; }

        /// <summary>
        /// 设置或获取 
        /// </summary>
        [MaxLength(50)]
        public long LastModifyUserId { get; set; }

        /// <summary>
        /// 设置或获取 
        /// </summary>
        public DateTime? DeleteTime { get; set; }

        /// <summary>
        /// 设置或获取 
        /// </summary>
        [MaxLength(50)]
        public long DeleteUserId { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public virtual User? UserInfo { get; set; }
    }
}
